Web page thumbnails and user configured complementary information provided from a server

ABSTRACT

A method for presenting content from the page in a distributed database. In a preferred embodiment, a server receives a request from a client for a page from the database wherein the page has a plurality of links to linked pages in the database. The server retrieves the page and generates a set of thumbnails of the linked pages in the database. The server then sends the page and the set of thumbnails to the client.

CROSS REFERENCE TO RELATED APPLICATIONS

[0001] The present application is related to copending U.S. patentapplication Ser. No. ______ (IBM Docket No. AT9-99-057 entitled“Automatic Web Page Thumbnail Generation”), U.S. patent application Ser.No. ______ (IBM Docket No. AT9-99-101 entitled “NavigationAssistant—Method and Apparatus for Providing User ConfiguredComplementary Information for Data Browsing in a Viewer Context”), U.S.patent application Ser. No. ______ (IBM Docket No. AT9-99-086 entitled“Method and System for Providing a Graphical Tree View of Web Pages”),and U.S. patent application Ser. No. ______ (IBM Docket No. AT9-99-087entitled “Web Page Thumbnails with Active Hot Links”) filed even dateherewith. The above mentioned patent applications are assigned to theassignee of and share the same inventors as the present invention. Thecontent of the cross referenced copending applications are herebyincorporated herein by reference.

BACKGROUND OF THE INVENTION

[0002] 1. Technical Field

[0003] The present invention relates to an improved computer system andin particular to computer software and more particularly to web browsersoftware. Still more particularly, the present invention provides amethod and apparatus for filtering and previewing data.

[0004] 2. Description of Related Art

[0005] The “Internet” is a globally accessible network of computers thatcollectively provide a large amount and variety of information to users.From services of the Internet such as the World Wide Web (or simply, the“web”), users may retrieve or “download” data from Internet networksites and display the data that includes information presented as textin various fonts, graphics, images, and the like having an appearanceintended by the publisher. As the information revolution has exploded,more and more information is available through the internet. However,finding particular pieces of information out of the millions of “websites” available can be daunting.

[0006] One way of sorting through this mass of information to find whatis of interest for a particular user is through the use of “searchengines”. Search engines are software written to search, among themillions of web sites, for certain key words or criteria entered by auser, and to return to the user a list of links (references to otherHTML pages) to the sites that the search engine determines to be mostrelevant to the criteria entered by the user. Different search enginesuse different methods of determining the relevance of web sites, butmost use some sort of quantitative method that determines the relevanceof a site based on how many times the key words appear in thatparticular site.

[0007] Search engines typically return only a list of links to relevantsites with perhaps a short verbal description of the site. Often times,this list does not provide sufficient information to enable one to makean intelligent decision as to whether to follow the link. Thus, the useris left with the time consuming task of sorting through the linksreturned by the search engine to determine which of these is the bestmatch. Furthermore, no mechanism is present for a user to determine,based on the search engine results, whether the site is still active orif it has been removed. This problem can be seen by referring to FIG. 1,which depicts a screen image of a returned search result from Altavista.Each link includes only a brief description of the site, but noindication of whether the link is still good or whether the linkcontains an excessive quantity of broken links within it.

[0008] Similar problems exist with regard to following links from oneweb page to another (sometimes referred to as “web surfing”). Oftentimes, users find the information they are looking for by followinglinks on web pages, but the same problem exist here as with searchengines. Many times the links will have only short descriptions aboutthe contents of the web page to which they link. Furthermore, many timesa web page will contain a dead link and there is no way the user candetermine this except by trial and error.

[0009] Therefore, it would be beneficial for Internet users to have atool to enable them to make more informed decisions about which links tofollow. Furthermore, performance of web browsing needs to bedramatically improved. To this end it would be advantageous if serverbased hardware and software could be applied to the task of acceleratingand enhancing client customers usage of a domain.

SUMMARY OF THE INVENTION

[0010] The present invention provides a method for presenting contentfrom the page in a distributed database. In a preferred embodiment, aserver receives a request from a client for a page from the databasewherein the page has a plurality of links to linked pages in thedatabase. The server retrieves the page and generates a set ofthumbnails of the linked pages in the database. The server then sendsthe page and the set of thumbnails to the client.

[0011] In another preferred embodiment, the present invention provides amethod of browsing the Internet. A server receives user criteria and arequest for a page from the Internet from a client. The server retrievesthe page and parses the page for a set of links to a set of linked webpages. The server then retrieves the set of linked pages and parses theset of linked pages for user selected criteria. Responsive to findingthe user criteria on a linked page within the set of linked pages, theserver modifies the page to indicate the presence of the user criteriaon the linked page and sends a modified page to the client.

BRIEF DESCRIPTION OF THE DRAWINGS

[0012] The novel features believed characteristic of the invention areset forth in the appended claims. The invention itself, however, as wellas a preferred mode of use, further objectives and advantages thereof,will best be understood by reference to the following detaileddescription of an illustrative embodiment when read in conjunction withthe accompanying drawings, wherein:

[0013]FIG. 1 (Prior Art) depicts a screen image of search resultspresented using Altavista without aid of the present invention;

[0014]FIG. 2 depicts a pictorial representation of a distributed dataprocessing system in which the present invention may be implemented;

[0015]FIG. 3 depicts a block diagram of a data processing system thatmay be implemented as a server;

[0016]FIG. 4 depicts a block diagram of a data processing system thatmay be used as a client computer in accordance with the presentinvention;

[0017]FIG. 5 shows a block diagram illustrating the flow of informationbetween a client and a server;

[0018]FIG. 6, a flow chart illustrating an over view of a preferredembodiment of the present invention is shown wherein the thumbnails aregenerated on a server;

[0019]FIG. 7 shows a flowchart providing a more detailed understandingof the method illustrated in FIG. 6;

[0020]FIG. 8 shows a screen image of the display of a web page includingthumbnails;

[0021]FIG. 9 shows a flowchart illustrating a basic overview formodifying the appearance of a web page in accordance with user selectedcriteria;

[0022]FIG. 10 illustrates an example of the modification of the web pagein a user configured manner to indicate the presence or absence of userselected criteria;

[0023]FIG. 11 shows a more detailed flowchart of the method depicted inFIG. 9;

[0024]FIG. 12 shows a flowchart providing a more detailed understandingof the steps involved in modifying the presentation of the web page(steps 1122-1130 and steps 1160-1180 of FIG. 11); and

[0025] FIGS. 13-14 depict the screen images of search results returnedby AltaVista with varying modifications to the displayed page.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0026] With reference now to the figures, and in particular withreference to FIG. 2, a pictorial representation of a distributed dataprocessing system is depicted in which the present invention may beimplemented.

[0027] Distributed data processing system 200 is a network of computersin which the present invention may be implemented. Distributed dataprocessing system 200 contains network 202, which is the medium used toprovide communications links between various devices and computersconnected within distributed data processing system 200. Network 202 mayinclude permanent connections, such as wire or fiber optic cables, ortemporary connections made through telephone connections.

[0028] In the depicted example, server 204 is connected to network 202,along with storage unit 206. In addition, clients 208, 210 and 212 arealso connected to network 202. These clients, 208, 210 and 212, may be,for example, personal computers or network computers. For purposes ofthis application, a network computer is any computer coupled to anetwork which receives a program or other application from anothercomputer coupled to the network. In the depicted example, server 204provides data, such as boot files, operating system images andapplications, to clients 208-212. Clients 208, 210 and 212 are clientsto server 204. Distributed data processing system 200 may includeadditional servers, clients, and other devices not shown. Distributeddata processing system 200 also includes printers 214, 216 and 218. Aclient, such as client 210, may print directly to printer 214. Clientssuch as client 208 and client 212 do not have directly attachedprinters. These clients may print to printer 216, which is attached toserver 204, or to printer 218, which is a network printer that does notrequire connection to a computer for printing documents. Client 210,alternatively, may print to printer 216 or printer 218, depending on theprinter type and the document requirements.

[0029] In the depicted example, distributed data processing system 200is the Internet, with network 202 representing a worldwide collection ofnetworks and gateways that use the TCP/IP suite of protocols tocommunicate with one another. At the heart of the Internet is a backboneof high-speed data communication lines between major nodes or hostcomputers consisting of thousands of commercial, government, education,and other computer systems that route data and messages. Of course,distributed data processing system 200 also may be implemented as anumber of different types of networks such as, for example, an intranetor a local area network.

[0030]FIG. 2 is intended as an example and not as an architecturallimitation for the processes of the present invention.

[0031] In an overview of the present invention, a Domain or Proxy Servercan be enhanced to provide automatically generated or manuallyoverridden thumbnails of web pages. This can be done over any suitableClient/Server Internet protocol CGI, HTTP, etc.

[0032] One preferred embodiment would entail the user selecting a webpage, while the web page is being sent to the client the server wouldalso build a list of thumbnails for the selected web page. Building ofthe thumbnail list would entail checking a cache for existingthumbnails, as well as parsing and generating thumbnails on the fly.Then depending on the current options selected between the client andthe server and current bandwidth considerations' the server would sendthe thumbnails along with the rest of the web page.

[0033] The Domain Server can choose to individually generate a thumbnailto be delivered to each client, or it can generate a “default user”thumbnail per each web page requested and cache it using existing meansfor subsequent client requests. In either case, it is advantageous torender the thumbnail on a server to reduce internet and/or intranetbandwidth requirements.

[0034] The manual override capability referenced above gives web contentcompanies the ability to continue using their selected Banner(s) incases where that would be advantageous. Also they may choose to manuallyfine tune the automatically generated thumbnail of any or all of theirweb pages.

[0035] Additionally, a Proxy Server can automatically, or by clientrequest, generate thumbnails for its clients. In this fashion an ISP orIntranet IS shop, can distinguish itself by providing this enhancedbrowsing capability, for all the domains its clients choose to browse.

[0036] Turning now to FIG. 3, a block diagram of a data processingsystem which may be implemented as a server, such as server 204 in FIG.2, is depicted in accordance with the present invention. Data processingsystem 300 may be a symmetric multiprocessor (SMP) system including aplurality of processors 302 and 304 connected to system bus 306.Alternatively, a single processor system may be employed. Dataprocessing system 300 is suitable as a domain host or other serverconnected to the Internet. Also connected to system bus 306 is memorycontroller/cache 308, which provides an interface to local memory 309.I/O bus bridge 310 is connected to system bus 306 and provides aninterface to I/O bus 312. Memory controller/cache 308 and I/O bus bridge310 may be integrated as depicted.

[0037] Peripheral component interconnect (PCI) bus bridge 314 connectedto I/O bus 312 provides an interface to PCI local bus 316. A number ofmodems 318-320 may be connected to PCI bus 316. Typical PCI busimplementations will support four PCI expansion slots or add-inconnectors. Communications links to network computers 208-212 in FIG. 2may be provided through modem 318 and network adapter 320 connected toPCI local bus 316 through add-in boards.

[0038] Additional PCI bus bridges 322 and 324 provide interfaces foradditional PCI buses 326 and 328, from which additional modems ornetwork adapters may be supported. In this manner, server 300 allowsconnections to multiple network computers. A memory mapped graphicsadapter 330 and hard disk 332 may also be connected to I/O bus 312 asdepicted, either directly or indirectly.

[0039] Those of ordinary skill in the art will appreciate that thehardware depicted in FIG. 3 may vary. For example, other peripheraldevices, such as optical disk drives and the like, also may be used inaddition to or in place of the hardware depicted. The depicted exampleis not meant to imply architectural limitations with respect to thepresent invention.

[0040] The data processing system depicted in FIG. 3 may be, forexample, an IBM RISC/System 6000, a product of International BusinessMachines Corporation in Armonk, N.Y., running the Advanced InteractiveExecutive (AIX) operating system.

[0041] With reference now to FIG. 4, a block diagram of a dataprocessing system in which the present invention may be implemented isillustrated. Data processing system 400 is an example of a clientcomputer. Data processing system 400 is suitable from running webbrowsing programs such as Netscape Navigator and Microsoft InternetExplorer, such programs being compatible with the present invention.Data processing system 400 employs a peripheral component interconnect(PCI) local bus architecture. Although the depicted example employs aPCI bus, other bus architectures, such as Micro Channel and ISA, may beused. Processor 402 and main memory 404 are connected to PCI local bus406 through PCI bridge 408. PCI bridge 408 may also include anintegrated memory controller and cache memory for processor 402.Additional connections to PCI local bus 406 may be made through directcomponent interconnection or through add-in boards. In the depictedexample, local area network (LAN) adapter 410, SCSI host bus adapter412, and expansion bus interface 414 are connected to PCI local bus 406by direct component connection. In contrast, audio adapter 416, graphicsadapter 418, and audio/video adapter (A/V) 419 are connected to PCIlocal bus 406 by add-in boards inserted into expansion slots. Expansionbus interface 414 provides a connection for a keyboard and mouse adapter420, modem 422, and additional memory 424. In the depicted example, SCSIhost bus adapter 412 provides a connection far hard disk drive 426, tapedrive 428, CD-ROM drive 430, and digital video disc read only memorydrive (DVD-ROM) 432. Typical PCI local bus implementations will supportthree or four PCI expansion slots or add-in connectors.

[0042] An operating system runs on processor 402 and is used tocoordinate and provide control of various components within dataprocessing system 400 in FIG. 4. The operating system may be acommercially available operating system, such as OS/2, which isavailable from International Business Machines Corporation. “OS/2” is atrademark of International Business Machines Corporation. An objectoriented programming system, such as Java, may run in conjunction withthe operating system, providing calls to the operating system from Javaprograms or applications executing on data processing system 400.Instructions for the operating system, the object-oriented operatingsystem, and applications or programs are located on a storage device,such as hard disk drive 426, and may be loaded into main memory 404 forexecution by processor 402.

[0043] Those of ordinary skill in the art will appreciate that thehardware in FIG. 4 may vary depending on the implementation. Forexample, other peripheral devices, such as optical disk drives and thelike, may be used in addition to or in place of the hardware depicted inFIG. 4. The depicted example is not meant to imply architecturallimitations with respect to the present invention. For example, theprocesses of the present invention may be applied to multiprocessor dataprocessing systems.

[0044] Turning now to FIG. 5, there is shown a block diagramillustrating the flow of information between a client and a server.Proxy server 502, which may be implemented as server 200, receivesrequests for web content from browser 504 within client 506. Server 502retrieves the requested information from the web 508. Server 502retrieves the web pages associated with the links in the requested webpage from the web 508 and generates thumbnails, icons, or otherinformation desired by the user. Server 502 may modify the requested webpage and send the user the modified web page containing thumbnails,icons, or some other modification. Alternatively, server 502 may sendthe user the unmodified web page and the thumbnails, icons, etc. asextra data wherein browser 504 determines how to use this extra data.

[0045] Turning now to FIG. 6, a flow chart illustrating an over view ofa preferred embodiment of the present invention is shown wherein thethumbnails are generated on a server, such as server 204 in FIG. 2. As auser selects a web page for viewing (step 605), a Domain or Proxy server(hereinafter referred to simply as server) parses the user selected webpage for links to other web pages (step 610). While the web page isbeing sent to the user, the server checks a cache for existingthumbnails (step 615) and prefetches linked pages not cached (step 620).The server then generates thumbnails of linked pages that do not have anexisting thumbnail in the cache (step 625). Next, the server sends thethumbnails along with the rest of the web page to the user.

[0046] The server can choose to individually generate a thumbnail to bedelivered to each user, or it can generate a “default user” thumbnailper each web page requested, and cache it using existing means forsubsequent user requests. That is to say, a preferred embodiment of thepresent invention enables customized thumbnail generation on auser-by-user basis. For example, perhaps a user chooses to receive blackand white thumbnail images, or perhaps a larger (or smaller) thanaverage thumbnail. It would also be possible to replace the imageentirely, or just certain pieces of it. In any case, it is advantageousto render thumbnails on a server to reduce internet and/or intranetbandwidth requirements.

[0047] A manual override capability gives web content companies theability to continue using their selected banner(s) in cases where thatwould be advantageous. In this manner, the web content company couldchoose the thumbnail image to be displayed next to links linking to oneof their web pages. Furthermore, the web content company could choose tosend an icon that represents that company to the user to be displayednext to the link rather than an image of the linked page itself. Theicon could be any image they choose, for example, it could be theCoca-Cola logo if the linked page belongs to Coca-Cola. Also, the webcontent company may choose to manually fine tune the automaticallygenerated thumbnail of any or all of their web pages. Furthermore, theserver can automatically, or by client request, generate thumbnails forits users. In this fashion, an internet service provider (“ISP”) orIntranet information services shop can distinguish itself by providingthis enhanced browsing capability for all the domains its clients chooseto browse. This method can be done over any suitable client/serverInternet protocol such as CGI, HTTP, etc.

[0048] A more detailed understanding of a preferred embodiment of thepresent invention is disclosed with reference to the flowchartillustrated in FIG. 7. As a server, such as server 200, receives arequest for web content from a user (step 710), the server determinesfrom the request whether the user has selected the thumbnail option(step 715). If the thumbnail option has not been selected, then theserver sends the web page without thumbnails in the customary fashion(step 720).

[0049] If the thumbnail option has been selected, then the server parsesthe web page for links to other web pages (step 725). The server thenchecks the cache for linked pages and prefetches the linked pages thatare not in the cache (step 730) using the server's prefetch mechanism.The server then generates thumbnails of each linked page that does notalready have a thumbnail in the cache (step 735) and then stores thenewly generated thumbnails in the cache (step 740).

[0050] Next, the server sends the thumbnails to the user (step 750). Inone embodiment, the web page is regenerated with the thumbnails includedand the modified web page is sent to the user. In another embodiment,the web page sends the thumbnails along with the unmodified web page tothe user. One method of modifying the web page prior to sending the webpage with thumbnails is generating the web page such that, when the webpage is viewed by the user, the thumbnails are displayed in-line (thatis each thumbnail is placed below the preceding thumbnail in a verticalline) near the corresponding link on the currently displayed web page asillustrated in FIG. 8.

[0051] Although, preferably, the thumbnails are automatically placedin-line by the server near the corresponding link on the selected webpage. However, in alternate embodiments, the user might be queried forplacement preferences, such as maximum distance from the link orpreferred placement in terms of top, right, left, below, above,separate, etc.

[0052] Also illustrated in FIG. 8 is a pointer 800 that allows a user toselect various areas of a display. Pointer 800 may be manipulated, forexample, by means of a mouse, a stylus pen, a joystick, or arrow keys.However, these are just a few methods of manipulating a pointer. Otherexamples are well known to those skilled in the art.

[0053] Turning now to FIG. 9, there is shown a flowchart illustrating abasic overview for modifying the appearance of a web page in accordancewith user selected criteria. A server receives a request for web contentfrom a user along with user selected criteria (step 905) and thenretrieves the requested web content (step 910). The server then parsesthe web page for user specified criteria (step 920). The web pagesassociated with any links found on the retrieved web page are prefetchedand the server then parses the prefetched web pages for user specifiedcriteria (step 930). If the prefetch fetches web pages that are severallinks removed from the presently viewed web page, the navigationassistant can parse these pages for user specified criteria as well. Ifthe server finds some or all of the user specified criteria in thecurrent web page or in one of the prefetched web pages, the current webpage's appearance is changed in a user configured manner (step 950).Ideally, the change in the appearance would effect the representation ofthe link or the data found in a user customizable way. This may beactual modification of the data (in the case of HTML, the HTML sourcefile which is downloaded to the browser would be modified to insert suchthings as tags (<b></b>(bold) or <i></i>(italics)), new icons,replacement of images, etc. On the other hand it might also be done in away that did not effect the raw data (e.g., the HTML source), but onlythe appearance of the unmodified data with regard to the viewer/browser.Either way this may mean inserting an icon at the presence of the data(e.g., an icon of a small eye as the character before a word or picturewhich had the preferred data as an alternate reference), or it may meanchanging text color, text size, changing the font (e.g., making it boldor italic or both) or adding a translucent shading over an image ortext, causing the text or image to appear selected (e.g., the sameshading that occurs when you use a “find in document command”—typicallyinverting the text) or even adding a border or colored border around aword or image. It may also mean replacing or overlaying the data withsomething the user configured such as a “Do Not Enter Sign” or drawing abox around it.

[0054]FIG. 10 illustrates an example of the modification of the web pagein a user configured manner to indicate the presence or absence of userselected criteria. As illustrated in FIG. 10, the filtering program hasdetected undesirable content on the first linked page displayed in thesearch results. Thus, the thumbnail has been modified to have a diamondwith “do not enter” written on it placed over the thumbnail image. Theseare but a few examples of modifications that can be made to thethumbnails and are not meant to be exhaustive. Other modifications tothe thumbnail images, such as to indicate the presence of a dead link,will be obvious to those skilled in the art.

[0055] A more detailed flowchart of the method depicted in FIG. 9 isdepicted in FIG. 11. A user configures display and content preferencesfor the navigation assistant (step 1110). The user accesses a web pageusing a web browser, such as Netscape Navigator or Microsoft InternetExplorer (step 1120). While the web page is being loaded and presentedto the user, the web page is parsed for user specified criteria (step1121). If user specified criteria are present on the web page (step1122), then the web page appearance is modified in accordance with userconfigured display preferences to indicate the presence of userspecified criteria (step 1124). If no user specified criteria arepresent on the web page (step 1122), then the navigation assistantdetermines if the user has configured a display setting when criterianot found (step 1126). If display settings have been set for whencriteria not found (step 1126), then the web page appearance is modifiedto indicate that no user specified criteria are present on the web page(step 1128). A determination is made as to whether display setting havebeen set for indicating the lack of criteria (step 1126). If no displaysettings have been set for indicating the lack of criteria, then the webpage appearance is not altered (step 1130).

[0056] After parsing the web page and configuring display settings inresponse to the presence or absence of user specified criteria, thenavigation assistant parses the web page to determine if it containslinks (universal resource locators “URLs”) to other web pages (step1135). If it does not, then the navigation assistant waits until a newweb page is loaded at which point the process is repeated (step 1195).If the web page does contain links to other web pages (step 1135), thenthe server prefetches these other links (step 1150). If no the web pagedoes not contain links to other web pages (step 1135), then the web page(with modifications, if any) is sent to the user (step 1193) and thenthe server waits until the user requests a new web page (step 1195).

[0057] If linked web pages have been prefetched (step 1140), then thefirst prefetched page is scanned for matches to user configured documentpreferences (step 1150). Steps 1150 and 1160 correspond to step 930 inFIG. 9. The server then determines whether user specified criteria arepresent in this first prefetched page (step 1160).

[0058] If user's specified criteria are present within this firstprefetched page, then the appearance of the currently displayed web pageis modified in accordance with user display configurations to indicatethe presence of user specified criteria (step 1165). However, if none ofthe user's specified criteria are present, then the server determineswhether the user has configured display settings for links that lackspecified criteria (step 1170). If the user has configured displaysettings for links corresponding to web pages that lack specifiedcriteria specified by the user, then the web page appearance is modifiedin accordance with these display preferences (step 1175). If no displaysettings have been configured for web pages not containing any userspecified criteria, then the web page appearance is not altered (step1180).

[0059] After the web page has been modified or left unaltered, dependingon the results of scanning the first prefetched page, the serverdetermines whether another linked page has been prefetched (step 1190).If another prefetched page exists, then this prefetched page is scannedfor content preferences (step 1192) and the process of steps 1160through 1190 are repeated until there are no prefetched pages that havenot been scanned for user configured specified criteria. Steps 1160through 1195 correspond to the processes of steps 940 and 950 shown inFIG. 9. At such point, the server will send the web page (in itsmodified form if it was modified) to the user (step 1193) and then waitsfor a new web page to be requested from the user (step 1195).

[0060] A more detailed understanding of the steps involved in modifyingthe presentation of the web page (steps 1122-1130 and steps 1160-1180 ofFIG. 11) is given with reference to FIG. 12. The server must firstdetermine whether the user has configured the preferences for a layeredprefetch (step 1205). In a layered prefetch, the navigator not onlyprefetches the web pages associated with the links on the currentlydisplayed web page (first layer), but also prefetches the web pagesassociated with links on the web pages associated with the links on thecurrently displayed web page (second layer). This layered prefetch canbe carried out to multiple layers (greater than two) as far as the userwishes consistent hardware and software constraints such as availablememory and download speed.

[0061] If the user has configured the preferences for a layeredprefetch, the server determines whether each linked web page contains anexcessive number of broken links (step 1210). What constitutes anexcessive number is determined by the user or plugin maker and can begiven in terms of absolute numbers or in percentage of broken links togood links. A broken link is a link that, if followed, does not retrievea web page or retrieves a web page containing a message indicating thatthe subject matter has moved, been removed, etc. If the navigatordetermines that the linked web page contains an excessive number ofbroken links, then the display is altered in some manner to indicatethat the web page associated with that particular link contains anexcessive number of broken links (step 1215). As an example, this couldbe accomplished by modifying the color of the link to perhaps gray wheregray would be an indication to the user that the link contains anexcessive number of broken links. Another example would be to display animage next to the link where the image would indicate that the web pageassociated with the link contains an excessive number of broken links.However, each of these is merely an example of a method of indicatingthe information to the user and, therefore, do not limit the scope ofthe present invention. Additionally, the server could parse second,third, etc. level pages for excessive broken links, etc.

[0062] If the user has not configured for a layered prefetch (step 1205)or if the web page associated with the link does not contain anexcessive number of broken links (step 1210), then the navigator parsesthe present web page or prefetched web page, as the case may be, todetermine whether it contains user configured negative preferences (step1220). Negative preferences may be content related where the user hasindicated-key words or subject matter which is not wanted such as adultoriented material. Other examples of negative preferences include orrelate to the size of the web page; avi's; music; number of links;number of images; total size of images; JavaScript presence; Java Appletpresence; domain name suffix; author; and date of information, i.e. lessthan seven days old. If such unwanted material or characteristics arepresent on the web page, then the appearance of the currently viewed webpage is altered to reflect such information (step 1225). Examples ofsuch modification include presenting an image of a circle with a linethrough it next to the link to indicate that the associated web pagecontains unwanted characteristics.

[0063] If the web page does not contain negative preferences, then theweb page is parsed to determine if it contains more than a thresholdamount of positive preferences (step 1230). Positive preferences (orcriteria) are preferences that the user desires in a web page. Thepositive preferences may relate to content and key words or it canrelate to characteristics about the web page itself such as date ofcreation, author, etc. Thus, the same kinds of information can besearched for whether desired (positive preferences) or unwanted(negative preferences). Other examples of user specified criteria orpreferences include determining the speed of the download for aparticular linked page or whether a web page is secure (these could alsobe included as negative criteria as well). If the amount of positivepreferences exceeds a threshold (step 1230), then the appearance of thecurrent web page is modified to indicate such information (step 1235).

[0064] If the web page does not contain more than a threshold ofpreferred user criteria (step 1230), but does contain some of thepreferred user criteria (step 1240), then the appearance of the web pageis altered to indicate the presence of some of the user's criteria (step1245).

[0065] However, if the web page does not contain any of the user'scriteria (step 1240), then the server determines whether the user haschosen a configuration which alters the display if a web page containsno matches to the user's criteria (step 1250). If the user hasconfigured the server to alter the appearance of the web page, then theserver changes the appearance of the web page to indicate that thatparticular link does not contain any matches to the user's specifiedcriteria (step 1255). Examples of changes to appearance include changingthe color of the link to gray or to displaying an image next to the linkindicating that none of the user's criteria were matched by the link.

[0066] If the user has not chosen a configuration in which the serveralters the appearance of the web page, then the web page appearance isleft as it is (step 1260). The server, after modifying (as in steps1225, 1235, 1245, or 1255) or leaving display unaltered (as in step1260), continues processing the web page and other web pages in the samefashion for other user specified criteria until all of the userspecified criteria have been searched for in the viewed web page as wellas in any and all prefetched web pages (step 1270).

[0067] Although the present invention has been described primarily withreference to modifying the appearance of the web page to indicate thepresence or absence of user preferences, this is not the only option forconveying this information to the user. Other options exist as will beobvious to one skilled in the art. Other examples include, but are notlimited to, opening another window on the user's computer and displayingthe desired or undesired information within the new window, having theappropriate information “pop-up” as the user's pointer passes over alink, or indicating to the user through sounds as the user passes over alink whether that link matches some or more of the user's preferredcriteria. Furthermore, combinations of options could be provided aswell. For example, a general indication of desired or undesired materialmay change the appearance of the link. However, when the pointer isproximate to a particular link, details as to which criteria are presentcan then be listed in a popup.

[0068] Another possibility for indicating to the user the presence orabsence of preferred criteria is in combination with thumbnail images ofthe linked pages. As the linked pages are prefetched, a thumbnail imageof the linked page is generated and presented to the user to aid theuser in navigating the web. For example, FIG. 13 depicts the screenimage of search results returned by Altavista. The thumbnail image ofeach linked page is displayed in line next to the link. In oneembodiment of the present invention, a dark border is placed around thethumbnail of links that contain matches to the user's undesirablecriteria. Thus enabling the user to avoid wasting time with those pages.In the example depicted in FIG. 13, the first link having no title has adark border indicating it is a page containing features the user doesnot desire. The fourth link entitled Lisa by Gary Paolini has a grayborder placed around the thumbnail image of the linked page to indicatethat some of the user's criteria were found in this page.

[0069] Another example of methods of indicating the presence or absenceof user preferences in linked pages is depicted in FIG. 14. FIG. 14contains the same search results as in FIG. 13. However, the firstlink's thumbnail image has been replaced by a “Do Not Enter” iconindicating to the user that this linked page contains undesirable orobjectionable features to the user. However, replacing a thumbnail imagewith another graphic is not limited to cases where objectionablematerial is found. For example, a green and red graphic might bereplaced with a graphic or thumbnail using other colors for someone whois color blind. Also, it might be that all or some of the graphics arereplaced with a blank image to maintain formatting, but reduce renderingtime.

[0070] In another example of conveying information to the user, supposethat the user had indicated a preference for pages containing words“Java Programming”. An icon representation of JavaScript, or a JavaApplet might be placed next to the thumbnail of the link if that linkcontained the chosen criteria. Information on the age of the web page(if it was present, and the user had selected it as a preference) mightalso be placed there.

[0071] In another example of the presentation of the informationprovided by the server, any, and all of the information that might bedisplayed in a “preview window” could also be placed in flyover help forthe link.

[0072] Examples of methods of indicating the presence of user specifiedcriteria on a presently viewed web page include highlighting thematching text in bold or blocking the matching text in a backgroundcolor different from the rest of the text. Other examples includereplacing obscene words with stars. Other devices for indicating-thepresence or absence of desired criteria or undesired criteria will beobvious to one skilled in the art.

[0073] It is important to note that although searched criteria has beendescribed as being selected by a user, it could also be selected by themaker of the plugin and could include a default setting if the userchooses not to select a criteria. It should also be noted that while thepresent invention has been described in terms of parsing the linkedpages for specified criteria, other methods of determining the contentof a linked page may be utilized as well. For example, the informationon a linked page may be maintained in the form of an appendix or indexpage. Another example is to maintain such information in a databasewhere the database might be created by the maker of the data expresslyfor this purpose or to aid search engines. However, the preferred methodremains to actually parse the data in a linked page since that is theonly true way to know the content of the data in a linked page sinceindexes become stale and the words that the author of a linked pagemight choose to put in a database to describe the content of the linkedpage might be different than the words chosen by a user.

[0074] In another modification to the present invention, the analysis ofthe prefetched pages is stored in a cache and if the browser recognizeda URL, it need not prefetch and reanalyze, but rather may retrieve theinformation from the cache. However, this assumes that the content of aURL has not changed and that the configuration chosen by the user hasnot changed. Furthermore, this assumes that the information was of atype that could be cached (e.g., not a secure connection type of whichno data is cached/stored). Furthermore, it assumes that caching wasenabled (e.g., not everyone has caching turned on in their browser).

[0075] It should be noted that, while the present invention has beendescribed primarily with reference to browsing the Internet and theWorld Wide Web, it is equally applicable to any navigation format whereone is using a viewer. For example it may be applied to navigating LotusNotes Databases, to personal records navigation, and to map navigation.In the case of may navigation, areas of the map may be highlighted. Thiswould be useful in a case of zooming in for greater detailed resolution.Information which is not visible (e.g., because it is so small it cannotbe drawn with the scale used) could be considered and treated like alink.

[0076] Although the present invention has been described primarily withreference to HTML documents, the present invention applies to otherdocument formats and markup languages as well. For example, such othermarkup languages include, but are not limited to, Extensible MarkupLanguage (XML), Vector Markup Language (VML), Virtual Reality MarkupLanguage (VRML), Dynamic Hypertext Markup Language (DHTML), and ExtendedHypertext Markup Language (XHTML). An example of other document formatsincludes, but is not limited, to a Postscript Document Format (PDF).

[0077] It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions and a variety of forms and thatthe present invention applies equally regardless of the particular typeof signal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media such afloppy disc, a hard disk drive, a RAM, and CD-ROMs and transmission-typemedia such as digital and analog communications links.

[0078] The description of the present invention has been presented forpurposes of illustration and description, but is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art. Although the browser has been illustrated in the form ofNetscape Navigator or Microsoft Internet Explorer, it could be appliedto any set of applications to send requests and retrieve documents fromthe Internet or any similar distributed data processing system such as alocal area network or intranet. The embodiment was chosen and describedin order to best explain the principles of the invention, the practicalapplication, and to enable others of ordinary skill in the art tounderstand the invention for various embodiments with variousmodifications as are suited to the particular use contemplated.

What is claimed is:
 1. A method for presenting content from a page in adistributed database, comprising the steps of: receiving, at a server, arequest from a client for a page from the database, wherein the page hasa plurality of links to linked pages in the database; retrieving thepage; and generating, by the server, a set of thumbnails of the linkedpages in the database.
 2. The method as recited in claim 1, furthercomprising the step of sending the page and the set of thumbnails to theclient.
 3. The method as recited in claim 2 wherein the thumbnails aremanually fine tuned on the server prior to the step of sending the setof thumbnails to the client.
 4. The method as recited in claim 2,wherein the page is modified by embedding the set of thumbnails into thepage prior to sending the page to the client.
 5. The method as recitedin claim 1, further comprising selectively replacing the thumbnails byicons.
 6. A computer program product in computer readable media for usein a proxy server for providing content from the page in a distributeddatabase, the computer program product comprising: first instructionsfor receiving, at a server, a request from a client for a page from thedatabase wherein the page has a plurality of links to linked pages inthe database; second instructions for retrieving the page; and thirdinstructions for generating a set of thumbnails of the linked pages inthe database.
 7. The computer program product as recited in claim 6,further comprising fourth instructions for sending the page and the setof thumbnails to the client.
 8. The computer program product as recitedin claim 7 wherein the thumbnails are manually fine tuned on the serverprior to sending the set of thumbnails to the client.
 9. The computerprogram product as recited in claim 7, wherein the page is modified byembedding the set of thumbnails into the page prior to sending the pageto the client.
 10. The computer program product as recited in claim 6,further comprising fourth instructions for selectively replacing thethumbnails by icons.
 11. A system for providing content from the page ina distributed database, comprising: means for receiving, at a server, arequest from a client for a page from the database wherein the page hasa plurality of links to linked pages in the database; means forretrieving the page; and means for generating a set of thumbnails of thelinked pages in the database.
 12. The system as recited in claim 11,further comprising means for sending the page and the set of thumbnailsto the client.
 13. The system as recited in claim 12 wherein thethumbnails are manually fine tuned on the server prior to sending theset of thumbnails to the client.
 14. The system as recited in claim 12,wherein the page is modified by embedding the set of thumbnails into thepage prior to sending the page to the client.
 15. The system as recitedin claim 11, further comprising means for selectively replacing thethumbnails by icons.
 16. A method for providing content from the page ina distributed database, comprising the steps of: providing a page ofdata from the database to a client, wherein the page has a plurality oflinks to linked pages in the database; and generating a set ofthumbnails for the plurality of links.
 17. The method as recited inclaim 16, further comprising embedding the thumbnails into the pageprior to providing the page to the client.
 18. The method as recited inclaim 17, further comprising manually fine tuning the thumbnails priorto embedding the thumbnails into the page.
 19. The method as recited inclaim 16, further comprising: selectively replacing the thumbnails byicons; and embedding the icons into the page prior to providing thethumbnails to the client.
 20. The method as recited in claim 19 whereinthe icons are manually determined by the owner of the linked pageassociated with each icon.
 21. A computer network, comprising: anetwork; a server connected to the network; and a client connected tothe network; wherein the network provides communications between theclient and the server; the server provides to the client a page of datafrom a database wherein the page has a plurality of links to linkedpages in the database; and the server generates and embeds in the page aset of thumbnails of the linked pages in the database.
 22. The networkas recited in claim 21, wherein the set of thumbnails are manually finetuned prior to being embedded in the page.
 23. The network as recited inclaim 21, wherein the thumbnails are selectively replaced by icons andthe icons embedded in the page prior to providing the page to theclient.
 24. A method of processing requests for pages on the Internet,comprising the steps of: receiving, at a server, from a client, usercriteria and a request for a page from the Internet and ; retrieving thepage and parsing the page for a set of links to a set of linked webpages; retrieving the set of linked pages; parsing the set of linkedpages for user criteria; responsive to finding the user criteria on alinked page within the set of linked pages, modifying the page toindicate the presence of the user criteria on the linked page; andsending a modified page to the client.
 25. The method as recited inclaim 24, wherein at least two different user criteria are present andthe page is modified in different manners responsive to finding thedifferent criteria on respective linked pages.
 26. The method as recitedin claim 24, further comprising the steps of placing an indicator inpage proximate to each link to an inactive site prior to sending thepage to the client; wherein the indicator indicates that the link isinactive.
 27. The method as recited in claim 24, further comprising thesteps of: parsing the linked pages for a second set of links to a secondset of linked web pages; parsing the second set of linked pages for asecond user criteria; and responsive to finding the second criteria on alinked page within the second set of linked pages, modifying the page toindicate the presence of the second criteria on the linked page withinthe second set of linked pages.
 28. The method as recited in claim 24,further comprising the steps of generating a thumbnail of each of thelinked pages.
 29. The method as recited in claim 28, further comprisingproviding an indicator over a respective thumbnail to indicate thepresence of the user criteria on a respective linked page.
 30. Themethod as recited in claim 28, wherein the thumbnail is modified toindicate the presence of the criteria on a respective linked page. 31.The method as recited in claim 28, wherein the thumbnail is modified toindicate the absence of the criteria on a respective linked page. 32.The method as recited in claim 28, wherein the thumbnail is replacedwith a different image to indicate the presence of the criteria on arespective linked page.
 33. The method as recited in claim 28, whereinthe thumbnail is replaced with a different image.
 34. The method asrecited in claim 28,.wherein the thumbnail is replaced with a blankimage.
 35. The method as recited in claim 28, wherein the thumbnail ispresented proximate to a respective link to a linked page.